/*--------------------------------------------------------------
 * File: sta.h 编码类型：C语言  UTF-8
 * Author WRS (1352509846@qq.com)
 * 功能: wifi配置为STA模式
 * Version 0.1
 * Date 2024-04-24 
 * 
 * @copyright Copyright (c) 2024
 * 
----------------------------------------------------------------*/

#ifndef __STA_H
#define	__STA_H

#ifdef __cplusplus
extern "C" {
#endif

#include "esp_wifi.h"
#define WIFI_SSID "M5Stack_OTA"
#define WIFI_PASSWORD "12345678"

#define MQTT_BROKER_ADDR "mqtt://192.168.10.124"
#define MQTT_BROKER_PORT 1883

#define MQTT_SUB_OTA_TOPIC "device/ota/command"
#define MQTT_SUB_INFO_TOPIC "device/info/request"

#define SCAN_WIFI_LIST_MAX_SIZE     8   // 最多显示扫描到的8个wifi

extern QueueHandle_t mqtt_queue;

// 扫描到的wifi信息
typedef  struct
{    
    uint16_t ap_num;                 // 存储可用 Wi-Fi 热点数量    
    wifi_ap_record_t ap_info[SCAN_WIFI_LIST_MAX_SIZE]; // 存储 Wi-Fi 热点信息的指针
}scan_wifi_t;

// 要连接的wifi信息
typedef  struct
{
    uint8_t wifi_connect_status;
    char ssid[32];
    char password[32];
    char IP[32];
}wifi_info_t;

// 定义MQTT消息结构体
typedef struct {
    char topic[64];      // 主题（预留固定长度，避免动态分配）
    char data[512];      // 数据负载
    uint32_t data_len;   // 实际数据长度
} mqtt_queue_msg_t;

void wifi_staMode_init(void);




#ifdef __cplusplus
}
#endif


#endif